package pe.edu.upc.dsd.debuggers.pedido.controller;

import java.io.IOException;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;

import javax.servlet.ServletConfig;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.context.support.WebApplicationContextUtils;

import pe.edu.upc.dsd.debuggers.pedido.model.service.PedidoService;
import pe.edu.upc.dsd.debuggers.pedido.model.service.VendedorService;
import pe.edu.upc.dsd.debuggers.pedido.model.vo.Cliente;
import pe.edu.upc.dsd.debuggers.pedido.model.vo.Pedido;
import pe.edu.upc.dsd.debuggers.pedido.model.vo.Producto;
import pe.edu.upc.dsd.debuggers.pedido.model.vo.Proveedor;
import pe.edu.upc.dsd.debuggers.pedido.model.vo.Vendedor;

public class RegPedidoController extends HttpServlet{

	//@Autowired
	private PedidoService pedidoService;
	private VendedorService vendedorService;
	/**
	 * 
	 */
	private static final long serialVersionUID = 1L;
	
	public RegPedidoController(){
		super();
	}
	
public void init(ServletConfig config)throws ServletException {
		
		this.pedidoService = WebApplicationContextUtils
				.getWebApplicationContext(config.getServletContext()).getBean(
						"pedidoService", PedidoService.class);
		
		this.vendedorService = WebApplicationContextUtils
				.getWebApplicationContext(config.getServletContext()).getBean(
						"vendedorService", VendedorService.class);

	}
	
	
	protected void doGet(HttpServletRequest request, HttpServletResponse response)throws ServletException, IOException{
		
		//Proveedor local=new Proveedor();
		//local.setNombre("");
	/*	List<Proveedor> listaProveedores=pedidoService.GetProveedores();
		
		request.setAttribute("proveedores", listaProveedores);
				
		request.getRequestDispatcher("cartele.jsp").forward(request,response);*/
		
	}
	
	protected void doPost(HttpServletRequest request, HttpServletResponse response)throws ServletException, IOException{

		System.out.println("dentro de RegPedido Controller");
		try{
			System.out.println("obtiene datos del jsp");
			String nomCliente = request.getParameter("txtNombreCliente");
			String codVendedor= request.getParameter("txtNombreVendedor");
			String condicionPago =request.getParameter("comboCondicionPedido");
			String producto = request.getParameter("txtCodigoProducto");
			Integer cantidadProducto = Integer.parseInt(request.getParameter("txtCantidadProducto"));
			//Double precioProducto = Double.valueOf(request.getParameter("txtValorUnitProducto"));
			System.out.println(codVendedor);
			
			//if (nomCliente!=null&&codVendedor!=null && condicionPago!=null&&producto!=null&&cantidadProducto!=null){
				Vendedor ven = new Vendedor();
				ven.setCodigo(codVendedor);
				
				//Vendedor getVendedor =new Vendedor();
				//getVendedor = vendedorService.getObtenerVendedorPorId(ven.getCodigo());
				
				Cliente cli = new Cliente();
				cli.setNombre(nomCliente);
				
				Pedido pedido = new Pedido();
				ArrayList<Producto> listProd = new ArrayList<Producto>();
				Producto pro = new Producto();
				pro.setCodigo(producto);
				int addcod = 1;
				String cod = "000-00"+addcod;
				pro.setCantidadPedido(cantidadProducto);
				listProd.add(pro);
				pedido.setCodigo(cod);
				pedido.setVendedor(ven);
				pedido.setCliente(cli);
				pedido.setTipoPago(condicionPago);
				pedido.setProducto(listProd);
				//pedido.setFecha("Date "+new Date());
				System.out.println(pedido.getProducto().get(0).getCodigo());
				System.out.println(pedido.getCliente().getNombre());
				System.out.println("Impl Result = "+pedido.getProducto());
				pedidoService.savePedido(pedido);
				System.out.println("realizo el pedido");
				request.getRequestDispatcher("site/pedidoCreado.jsp").forward(request, response);
				System.out.println("muestra confirmacion");
				
			/*}else{
				request.getRequestDispatcher("site/errorCrear.jsp").forward(request,response);
			}*/
			
			
			
		}catch (Exception e){
			  request.setAttribute("error", e.getMessage());
			  System.out.println("no realiza el pedido");
              request.getRequestDispatcher("site/errorCrear.jsp").forward(request,response);
              return;

		}
		
	
	}
	

}
